package com.yx.study.leet.primary.arrary;

public class MyAtoi {
    public int myAtoi(String s) {
        // 1. 去除字符串前后空字符
        String newS = s.trim();
        // 2. 如果为空,直接返回0
        if(newS.length()==0){
            return 0;
        }
        // 3. 判断符号
        char[] chars = newS.toCharArray();
        int index = 0;
        // 再判断符号
        int sign =  1;
        if(chars[index] == '-' || chars[index] == '+'){
            if(chars[index] == '-'){
                sign = -1;
            }
            index++;
        }
        int result = 0;
        int temp = 0;
        while (index < chars.length){
            int num = chars[index] - '0';
            if(num > 9 || num < 0){
                break;
            }
            temp = result;
            result = result * 10 + num;
            // 越界后，数值和期望数值发生变化，取余再除10获取原始值，比对判断
            if(result/10 !=temp){
                if(sign > 0){
                    return Integer.MAX_VALUE;
                }else {
                    return Integer.MIN_VALUE;
                }
            }
            index++;
        }
        return result*sign;
    }
}
